home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 221_01 / cc5.asm < prev    next >
Assembly Source File  |  1980-01-01  |  21KB  |  1,959 lines

  1. ;small-c V2.3
  2.  EXT ccdiv,ccmult
  3.  EXT fopen,fclose,getc,putc,putchar,getchar,rewind,gets
  4.  EXT exit
  5.  EXT CCSWITCH
  6.  EXT CCPOLL
  7.  EXT isalpha,isupper,islower,isdigit,isspace
  8.  EXT toupper,tolower
  9.  EXT strlen,reverse,left,strcmp,strcpy
  10.  EXT abs,itoa,atoi,printf
  11.  EXT add
  12.  EXT and
  13.  EXT asl
  14.  EXT asr
  15.  EXT blanks
  16.  EXT ch
  17.  EXT clearsta
  18.  EXT div
  19.  EXT doublere
  20.  EXT eq
  21.  EXT ge
  22.  EXT getlabel
  23.  EXT gt
  24.  EXT heir7
  25.  EXT immed
  26.  EXT inbyte
  27.  EXT jump
  28.  EXT le
  29.  EXT loadsec
  30.  EXT lt
  31.  EXT match
  32.  EXT mod
  33.  EXT mult
  34.  EXT needbrac
  35.  EXT needlval
  36.  EXT ne
  37.  EXT nl
  38.  EXT or
  39.  EXT outdec
  40.  EXT outstr
  41.  EXT postlabe
  42.  EXT pop
  43.  EXT push
  44.  EXT pushsec
  45.  EXT rvalue
  46.  EXT setstage
  47.  EXT store
  48.  EXT streq
  49.  EXT sub
  50.  EXT testjump
  51.  EXT testnoop
  52.  EXT testtrue
  53.  EXT uge
  54.  EXT ugt
  55.  EXT ule
  56.  EXT ult
  57.  EXT xor
  58.  EXT lptr
  59.  EXT cptr
  60.  EXT line
  61.  NAME doexpres
  62.  GLOBAL doexpres
  63. doexpres
  64.  LEAS -4,S
  65. cc2
  66.  LDD  #1
  67.  CMPD #0
  68.  LBEQ cc3
  69.  LEAY 2,S
  70.  TFR  Y,D
  71.  PSHS D
  72.  LEAY 2,S
  73.  TFR  Y,D
  74.  PSHS D
  75.  JSR setstage
  76.  LEAS 4,S
  77.  JSR expressi
  78.  LDD  2,S
  79.  PSHS D
  80.  LDD  2,S
  81.  PSHS D
  82.  JSR clearsta
  83.  LEAS 4,S
  84.  JSR ch
  85.  PSHS D
  86.  LDD  #44
  87.  CMPD ,S++
  88.  LBEQ cc4
  89.  JMP cc3
  90. cc4
  91.  JSR inbyte
  92.  JMP cc2
  93. cc3
  94.  LEAS 4,S
  95.  RTS
  96.  GLOBAL expressi
  97. expressi
  98.  LEAS -16,S
  99.  LEAY 0,S
  100.  TFR  Y,D
  101.  PSHS D
  102.  JSR heir1
  103.  LEAS 2,S
  104.  CMPD #0
  105.  LBEQ cc5
  106.  LEAY 0,S
  107.  TFR  Y,D
  108.  PSHS D
  109.  JSR rvalue
  110.  LEAS 2,S
  111. cc5
  112.  LEAS 16,S
  113.  RTS
  114.  GLOBAL heir1
  115. heir1
  116.  LEAS -20,S
  117.  LDD  22,S
  118.  PSHS D
  119.  LDD  #2
  120.  PSHS D
  121.  ADDD ,S++
  122.  ADDD ,S++
  123.  PSHS D
  124.  LDD  24,S
  125.  PSHS D
  126.  LDD  #3
  127.  PSHS D
  128.  ADDD ,S++
  129.  ADDD ,S++
  130.  PSHS D
  131.  LDD  #1
  132.  STD  [,S++]
  133.  STD  [,S++]
  134.  LEAY 16,S
  135.  TFR  Y,D
  136.  PSHS D
  137.  LDD  24,S
  138.  PSHS D
  139.  JSR heir1a
  140.  LEAS 2,S
  141.  STD  [,S++]
  142.  JSR blanks
  143.  LEAY 18,S
  144.  TFR  Y,D
  145.  PSHS D
  146.  LDD  #line
  147.  ADDD lptr
  148.  STD  [,S++]
  149.  LDD  18,S
  150.  PSHS D
  151.  LDD  #cc1+0
  152.  PSHS D
  153.  JSR streq
  154.  LEAS 4,S
  155.  PSHS D
  156.  LDD  #0
  157.  CMPD ,S++
  158.  LBNE cc6
  159.  LDD  18,S
  160.  PSHS D
  161.  LDD  #cc1+3
  162.  PSHS D
  163.  JSR streq
  164.  LEAS 4,S
  165.  PSHS D
  166.  LDD  #0
  167.  CMPD ,S++
  168.  LBNE cc7
  169.  LDD  18,S
  170.  PSHS D
  171.  LDD  #cc1+6
  172.  PSHS D
  173.  JSR streq
  174.  LEAS 4,S
  175.  PSHS D
  176.  LDD  #0
  177.  CMPD ,S++
  178.  LBNE cc8
  179.  LDD  18,S
  180.  PSHS D
  181.  LDD  #cc1+9
  182.  PSHS D
  183.  JSR streq
  184.  LEAS 4,S
  185.  PSHS D
  186.  LDD  #0
  187.  CMPD ,S++
  188.  LBNE cc9
  189.  LDD  18,S
  190.  PSHS D
  191.  LDD  #cc1+12
  192.  PSHS D
  193.  JSR streq
  194.  LEAS 4,S
  195.  PSHS D
  196.  LDD  #0
  197.  CMPD ,S++
  198.  LBNE cc10
  199.  LDD  18,S
  200.  PSHS D
  201.  LDD  #cc1+15
  202.  PSHS D
  203.  JSR streq
  204.  LEAS 4,S
  205.  PSHS D
  206.  LDD  #0
  207.  CMPD ,S++
  208.  LBNE cc11
  209.  LDD  18,S
  210.  PSHS D
  211.  LDD  #cc1+19
  212.  PSHS D
  213.  JSR streq
  214.  LEAS 4,S
  215.  PSHS D
  216.  LDD  #0
  217.  CMPD ,S++
  218.  LBNE cc12
  219.  LDD  18,S
  220.  PSHS D
  221.  LDD  #cc1+23
  222.  PSHS D
  223.  JSR streq
  224.  LEAS 4,S
  225.  PSHS D
  226.  LDD  #0
  227.  CMPD ,S++
  228.  LBNE cc13
  229.  LDD  18,S
  230.  PSHS D
  231.  LDD  #cc1+26
  232.  PSHS D
  233.  JSR streq
  234.  LEAS 4,S
  235.  PSHS D
  236.  LDD  #0
  237.  CMPD ,S++
  238.  LBNE cc14
  239.  LDD  18,S
  240.  PSHS D
  241.  LDD  #cc1+29
  242.  PSHS D
  243.  JSR streq
  244.  LEAS 4,S
  245.  PSHS D
  246.  LDD  #0
  247.  CMPD ,S++
  248.  LBNE cc15
  249.  JSR ch
  250.  PSHS D
  251.  LDD  #61
  252.  CMPD ,S++
  253.  LBEQ cc16
  254.  LDD  16,S
  255.  LEAS 20,S
  256.  RTS
  257. cc16
  258. cc15
  259. cc14
  260. cc13
  261. cc12
  262. cc11
  263. cc10
  264. cc9
  265. cc8
  266. cc7
  267. cc6
  268.  LDD  16,S
  269.  PSHS D
  270.  LDD  #0
  271.  CMPD ,S++
  272.  LBNE cc17
  273.  JSR needlval
  274.  LDD  #0
  275.  LEAS 20,S
  276.  RTS
  277. cc17
  278.  LDD  22,S
  279.  PSHS D
  280.  LDD  #1
  281.  PSHS D
  282.  ADDD ,S++
  283.  ADDD ,S++
  284.  PSHS D
  285.  LDD  [,S++]
  286.  CMPD #0
  287.  LBEQ cc18
  288.  JSR push
  289.  JMP cc19
  290. cc18
  291.  JSR ch
  292.  PSHS D
  293.  LDD  #61
  294.  CMPD ,S++
  295.  LBEQ cc20
  296.  JSR immed
  297.  LDD  22,S
  298.  PSHS D
  299.  LDD  [,S++]
  300.  ADDD #0
  301.  PSHS D
  302.  JSR outstr
  303.  LEAS 2,S
  304.  JSR nl
  305.  JSR push
  306. cc20
  307. cc19
  308.  LDD  #cc1+32
  309.  PSHS D
  310.  JSR match
  311.  LEAS 2,S
  312.  CMPD #0
  313.  LBEQ cc21
  314.  LEAY 0,S
  315.  TFR  Y,D
  316.  PSHS D
  317.  JSR heir1
  318.  LEAS 2,S
  319.  CMPD #0
  320.  LBEQ cc22
  321.  LEAY 0,S
  322.  TFR  Y,D
  323.  PSHS D
  324.  JSR rvalue
  325.  LEAS 2,S
  326. cc22
  327.  JMP cc23
  328. cc21
  329.  LDD  #cc1+34
  330.  PSHS D
  331.  JSR match
  332.  LEAS 2,S
  333.  CMPD #0
  334.  LBEQ cc24
  335.  LEAY 0,S
  336.  TFR  Y,D
  337.  PSHS D
  338.  JSR heir1
  339.  LEAS 2,S
  340.  CMPD #0
  341.  LBEQ cc25
  342.  LEAY 0,S
  343.  TFR  Y,D
  344.  PSHS D
  345.  JSR rvalue
  346.  LEAS 2,S
  347. cc25
  348.  JSR loadsec
  349.  JSR pushsec
  350.  LDD  22,S
  351.  PSHS D
  352.  LDD  #0
  353.  PSHS D
  354.  ADDD ,S++
  355.  ADDD ,S++
  356.  PSHS D
  357.  LDD  [,S++]
  358.  STD  cptr
  359.  CMPD #0
  360.  LBEQ cc26
  361.  LDD  cptr
  362.  ADDD #9
  363.  PSHS D
  364.  LDB  [,S++]
  365.  SEX
  366.  PSHS D
  367.  LDD  #3
  368.  CMPD ,S++
  369.  BEQ  *+8
  370.  LDD  #0
  371.  JMP cc28 _
  372.  LDD  #1
  373.  LDD  cptr
  374.  ADDD #10
  375.  PSHS D
  376.  LDB  [,S++]
  377.  SEX
  378.  PSHS D
  379.  LDD  #2
  380.  PSHS D
  381.  LDD  #2
  382.  DECB
  383.  BLT  *+8
  384.  ASL  1,S
  385.  ROL  ,S
  386.  BRA  *-7
  387.  PULS D
  388.  CMPD ,S++
  389.  BEQ  *+8
  390.  LDD  #0
  391.  JMP cc28 _
  392.  LDD  #1
  393.  LDD  #1
  394. cc28
  395.  CMPD #0
  396.  LBEQ cc29 _
  397.  LDD  22,S
  398.  PSHS D
  399.  LDD  #2
  400.  PSHS D
  401.  ADDD ,S++
  402.  ADDD ,S++
  403.  PSHS D
  404.  LDD  [,S++]
  405.  CMPD #0
  406.  LBEQ cc29 _
  407.  LDD  #1
  408. cc29
  409.  CMPD #0
  410.  LBEQ cc27
  411.  JSR doublere
  412. cc27
  413. cc26
  414.  JSR add
  415.  JMP cc30
  416. cc24
  417.  LDD  #cc1+37
  418.  PSHS D
  419.  JSR match
  420.  LEAS 2,S
  421.  CMPD #0
  422.  LBEQ cc31
  423.  LEAY 0,S
  424.  TFR  Y,D
  425.  PSHS D
  426.  JSR heir1
  427.  LEAS 2,S
  428.  CMPD #0
  429.  LBEQ cc32
  430.  LEAY 0,S
  431.  TFR  Y,D
  432.  PSHS D
  433.  JSR rvalue
  434.  LEAS 2,S
  435. cc32
  436.  JSR loadsec
  437.  JSR pushsec
  438.  LDD  22,S
  439.  PSHS D
  440.  LDD  #0
  441.  PSHS D
  442.  ADDD ,S++
  443.  ADDD ,S++
  444.  PSHS D
  445.  LDD  [,S++]
  446.  STD  cptr
  447.  CMPD #0
  448.  LBEQ cc33
  449.  LDD  cptr
  450.  ADDD #9
  451.  PSHS D
  452.  LDB  [,S++]
  453.  SEX
  454.  PSHS D
  455.  LDD  #3
  456.  CMPD ,S++
  457.  BEQ  *+8
  458.  LDD  #0
  459.  JMP cc35 _
  460.  LDD  #1
  461.  LDD  cptr
  462.  ADDD #10
  463.  PSHS D
  464.  LDB  [,S++]
  465.  SEX
  466.  PSHS D
  467.  LDD  #2
  468.  PSHS D
  469.  LDD  #2
  470.  DECB
  471.  BLT  *+8
  472.  ASL  1,S
  473.  ROL  ,S
  474.  BRA  *-7
  475.  PULS D
  476.  CMPD ,S++
  477.  BEQ  *+8
  478.  LDD  #0
  479.  JMP cc35 _
  480.  LDD  #1
  481.  LDD  #1
  482. cc35
  483.  CMPD #0
  484.  LBEQ cc36 _
  485.  LDD  22,S
  486.  PSHS D
  487.  LDD  #2
  488.  PSHS D
  489.  ADDD ,S++
  490.  ADDD ,S++
  491.  PSHS D
  492.  LDD  [,S++]
  493.  CMPD #0
  494.  LBEQ cc36 _
  495.  LDD  #1
  496. cc36
  497.  CMPD #0
  498.  LBEQ cc34
  499.  JSR doublere
  500. cc34
  501. cc33
  502.  JSR sub
  503.  JMP cc37
  504. cc31
  505.  LDD  #cc1+40
  506.  PSHS D
  507.  JSR match
  508.  LEAS 2,S
  509.  CMPD #0
  510.  LBEQ cc38
  511.  LEAY 0,S
  512.  TFR  Y,D
  513.  PSHS D
  514.  JSR heir1
  515.  LEAS 2,S
  516.  CMPD #0
  517.  LBEQ cc39
  518.  LEAY 0,S
  519.  TFR  Y,D
  520.  PSHS D
  521.  JSR rvalue
  522.  LEAS 2,S
  523. cc39
  524.  JSR loadsec
  525.  JSR mult
  526.  JMP cc40
  527. cc38
  528.  LDD  #cc1+43
  529.  PSHS D
  530.  JSR match
  531.  LEAS 2,S
  532.  CMPD #0
  533.  LBEQ cc41
  534.  LEAY 0,S
  535.  TFR  Y,D
  536.  PSHS D
  537.  JSR heir1
  538.  LEAS 2,S
  539.  CMPD #0
  540.  LBEQ cc42
  541.  LEAY 0,S
  542.  TFR  Y,D
  543.  PSHS D
  544.  JSR rvalue
  545.  LEAS 2,S
  546. cc42
  547.  JSR loadsec
  548.  JSR div
  549.  JMP cc43
  550. cc41
  551.  LDD  #cc1+46
  552.  PSHS D
  553.  JSR match
  554.  LEAS 2,S
  555.  CMPD #0
  556.  LBEQ cc44
  557.  LEAY 0,S
  558.  TFR  Y,D
  559.  PSHS D
  560.  JSR heir1
  561.  LEAS 2,S
  562.  CMPD #0
  563.  LBEQ cc45
  564.  LEAY 0,S
  565.  TFR  Y,D
  566.  PSHS D
  567.  JSR rvalue
  568.  LEAS 2,S
  569. cc45
  570.  JSR loadsec
  571.  JSR mod
  572.  JMP cc46
  573. cc44
  574.  LDD  #cc1+49
  575.  PSHS D
  576.  JSR match
  577.  LEAS 2,S
  578.  CMPD #0
  579.  LBEQ cc47
  580.  LEAY 0,S
  581.  TFR  Y,D
  582.  PSHS D
  583.  JSR heir1
  584.  LEAS 2,S
  585.  CMPD #0
  586.  LBEQ cc48
  587.  LEAY 0,S
  588.  TFR  Y,D
  589.  PSHS D
  590.  JSR rvalue
  591.  LEAS 2,S
  592. cc48
  593.  JSR loadsec
  594.  JSR pushsec
  595.  JSR asr
  596.  JMP cc49
  597. cc47
  598.  LDD  #cc1+53
  599.  PSHS D
  600.  JSR match
  601.  LEAS 2,S
  602.  CMPD #0
  603.  LBEQ cc50
  604.  LEAY 0,S
  605.  TFR  Y,D
  606.  PSHS D
  607.  JSR heir1
  608.  LEAS 2,S
  609.  CMPD #0
  610.  LBEQ cc51
  611.  LEAY 0,S
  612.  TFR  Y,D
  613.  PSHS D
  614.  JSR rvalue
  615.  LEAS 2,S
  616. cc51
  617.  JSR loadsec
  618.  JSR pushsec
  619.  JSR asl
  620.  JMP cc52
  621. cc50
  622.  LDD  #cc1+57
  623.  PSHS D
  624.  JSR match
  625.  LEAS 2,S
  626.  CMPD #0
  627.  LBEQ cc53
  628.  LEAY 0,S
  629.  TFR  Y,D
  630.  PSHS D
  631.  JSR heir1
  632.  LEAS 2,S
  633.  CMPD #0
  634.  LBEQ cc54
  635.  LEAY 0,S
  636.  TFR  Y,D
  637.  PSHS D
  638.  JSR rvalue
  639.  LEAS 2,S
  640. cc54
  641.  JSR loadsec
  642.  JSR pushsec
  643.  JSR and
  644.  JMP cc55
  645. cc53
  646.  LDD  #cc1+60
  647.  PSHS D
  648.  JSR match
  649.  LEAS 2,S
  650.  CMPD #0
  651.  LBEQ cc56
  652.  LEAY 0,S
  653.  TFR  Y,D
  654.  PSHS D
  655.  JSR heir1
  656.  LEAS 2,S
  657.  CMPD #0
  658.  LBEQ cc57
  659.  LEAY 0,S
  660.  TFR  Y,D
  661.  PSHS D
  662.  JSR rvalue
  663.  LEAS 2,S
  664. cc57
  665.  JSR loadsec
  666.  JSR pushsec
  667.  JSR xor
  668.  JMP cc58
  669. cc56
  670.  LDD  #cc1+63
  671.  PSHS D
  672.  JSR match
  673.  LEAS 2,S
  674.  CMPD #0
  675.  LBEQ cc59
  676.  LEAY 0,S
  677.  TFR  Y,D
  678.  PSHS D
  679.  JSR heir1
  680.  LEAS 2,S
  681.  CMPD #0
  682.  LBEQ cc60
  683.  LEAY 0,S
  684.  TFR  Y,D
  685.  PSHS D
  686.  JSR rvalue
  687.  LEAS 2,S
  688. cc60
  689.  JSR loadsec
  690.  JSR pushsec
  691.  JSR or
  692. cc59
  693. cc58
  694. cc55
  695. cc52
  696. cc49
  697. cc46
  698. cc43
  699. cc40
  700. cc37
  701. cc30
  702. cc23
  703.  LDD  22,S
  704.  PSHS D
  705.  JSR store
  706.  LEAS 2,S
  707.  LDD  #0
  708.  LEAS 20,S
  709.  RTS
  710. cc1 FCB 43,61,0,45,61,0,42,61,0,47
  711.  FCB 61,0,37,61,0,60,60,61,0,62
  712.  FCB 62,61,0,38,61,0,124,61,0,94
  713.  FCB 61,0,61,0,43,61,0,45,61,0
  714.  FCB 42,61,0,47,61,0,37,61,0,62
  715.  FCB 62,61,0,60,60,61,0,38,61,0
  716.  FCB 94,61,0,124,61,0
  717.  GLOBAL heir1a
  718. heir1a
  719.  LEAS -6,S
  720.  LEAY 4,S
  721.  TFR  Y,D
  722.  PSHS D
  723.  LDD  10,S
  724.  PSHS D
  725.  JSR heir1b
  726.  LEAS 2,S
  727.  STD  [,S++]
  728.  LDD  #cc61+0
  729.  PSHS D
  730.  JSR match
  731.  LEAS 2,S
  732.  CMPD #0
  733.  LBEQ cc62
  734.  LDD  4,S
  735.  CMPD #0
  736.  LBEQ cc63
  737.  LDD  8,S
  738.  PSHS D
  739.  JS